home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d6 / glazer.arc / PERBALAN.BAS < prev    next >
BASIC Source File  |  1988-10-07  |  2KB  |  45 lines

  1. 100 'Periodic Balance ("PERBALANCE")
  2. 110 CLS
  3. 120 COLOR 0,15 : PRINT "Periodic Balance" : COLOR 15,0
  4. 130 DEFDBL A-Z
  5. 140 DEFINT M-N
  6. 150 MONEYFMT$ = "$$##,###,###.##"
  7. 160 PRINT
  8. 170 PRINT "Do not enter dollar signs or commas"
  9. 180 PRINT
  10. 190 '     Let user enter data
  11. 200 INPUT "Starting balance: ", SBALANCE
  12. 210 INPUT "Deposit each period: ", DEPOSIT
  13. 220 INPUT "Annual interest rate (in percent): ", AR
  14. 230 INPUT "Number of years: ", NYEARS
  15. 240 INPUT "Number of deposits per year: ", NPY
  16. 250 INPUT "Annual inflation rate (in percent): ", INFLATION
  17. 260 INPUT  "Marginal tax rate (in percent): ", TAXRATE
  18. 270 '     Initialize values
  19. 280 PR = (1 + AR / 100) ^ (1 / NPY) - 1    'Interest rate per period
  20. 290 PR = PR * (1 - TAXRATE / 100)          'After-tax interest rate
  21. 300 '     Find balance at end of term
  22. 310 TOTALYEARS = TOTALYEARS + NYEARS
  23. 320 EBALANCE = SBALANCE * (1 + PR) ^ (NYEARS * NPY)
  24. 330 IF PR <> 0  THEN EBALANCE = EBALANCE + DEPOSIT * ( (1 + PR) ^ (NYEARS * NPY)                     - 1 ) * (1 + PR) / PR                                                      ELSE EBALANCE = EBALANCE + NYEARS * NPY * DEPOSIT
  25. 340 'Adjust for inflation
  26. 350 ADJUSTEDBAL = EBALANCE * ( (1 + INFLATION / 100) ^ (1 / NPY) ) ^                              (-TOTALYEARS * NPY)
  27. 360 '     Print results
  28. 370 PRINT
  29. 380 PRINT "Year: "; TOTALYEARS
  30. 390 PRINT "Final balance "; TAB(30); USING MONEYFMT$; EBALANCE
  31. 400 PRINT "Inflation-adjusted balance "; TAB(30); USING MONEYFMT$; ADJUSTEDBAL
  32. 410 '     Let user continue additional periods
  33. 420 PRINT
  34. 430 PRINT "Enter Y to continue, N to stop"
  35. 440 K$ = INKEY$: IF K$ = ""  THEN GOTO 440  ELSE IF INSTR("YyNn", K$) = 0                 THEN GOTO 430
  36. 450 IF K$ = "N" OR K$ = "n"  THEN END
  37. 460   CLS
  38. 470   'Let user enter new data
  39. 480   INPUT "Deposit each period: ", DEPOSIT
  40. 490   INPUT "Annual interest rate (in percent): ", AR
  41. 500   INPUT "Number of additional years: ", NYEARS
  42. 510   SBALANCE = EBALANCE    'Starting balance is previous final balance
  43. 520   GOTO 280   'Repeat calculations
  44. 530 END
  45.